/**
    给定一个字符串 s，找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

    示例 1：

    输入: "babad"
    输出: "bab"
    注意: "aba" 也是一个有效答案。
    示例 2：

    输入: "cbbd"
    输出: "bb"
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {
    let result = '';
    function find(idx) {
        let i = idx;
        let j = idx;
        while(i < s.length && j >= 0) {
            if(s[i + 1] != s[j - 1]) {
                break;
            }
            i++,j--;
        }
        if(i - j + 1 > result.length) {
            result = s.substring(j, i + 1);
        }
    }
    function find2(idx) {
        let i = idx + 1;
        let j = idx;
        if(s[i] !== s[j]) return;
        while(s[i+1] == s[j - 1] && i < s.length && j >= 0) {
            j--,i++;
        }
        if(i - j + 1 > result.length) {
            result = s.substring(j, i + 1);
        }
    }
    for(let i = 0; i < s.length; i++) {
        find(i);
        find2(i);
    }
    if(result == '' && (s.length == 1||s.length == 2)) {
        return s[0];
    }
    return result;
};
function run () {
    let args = [
        'babad'
    ];
    return longestPalindrome(...args);
}
module.exports = run;